4 种姿势让你彻底掌握 Redis 的导入导出以及数据迁移 |
您所在的位置:网站首页 › gbase 导入 csv › 4 种姿势让你彻底掌握 Redis 的导入导出以及数据迁移 |
闲着无事,在家里无聊。两天前,我搞了一个《2020-nCoV 新型肺炎确诊患者相同行程查询工具 V1.3》,在朋友圈里疯狂转发!我兴奋极力了,这让我感受到了作为一个程序员的莫大价值。于是,我登上 B 站,想娱乐一下,发现我之前录制的一些视频被很多人关注了,并且播放量也蹭蹭的上涨。这又诱惑的我想继续录制一些视频了,这次的内容就是 4 种方式让你彻底掌握 Redis 的导入导出以及数据迁移! 本文是一个文档教程,视频教程目前还在 B 站进行审核!等审核通过后给大家链接,并且我会发到朋友圈! 1、aof 导入方式。 因为这种方式比较简单,所以我就先介绍它。 分两步来实现,第一步先让源 Redis 生成 AOF 数据文件。 ![]() dir 目录,可以通过 config get dir 目录获得。 ![]() 通过上面的命令,我们可以看到我本地的 dir 目录是:/usr/local/var/db/redis。 现在我们来做第二步操作,让目标 Redis 实例导入 aof 数据。 ![]() 上面的第一个命令,执行后,如果出现以下内容,则表示导入 aof 数据成功。 ![]() 我这里是测试,数据比较少,所以提示有 5 个导入成功了。 AOF 的缺点也很明显,就是速度慢,并且如果内容多的话,文件也比较大。而且开启 AOF 后,QPS 会比 RDB 模式写的 QPS 低。还有就是 AOF 是一个定时任务,可能会出现数据丢失的情况。 2、通过我的 xttblog_redis_mv.sh 脚本来实现。 我的脚本内容如下: ![]() 大家在使用的时候,只需要替换 IP 即可。 这个脚本同样有一个问题就是使用了 keys *,然后一个一个遍历,如果是生产环境,不建议这样使用!当然我的脚本也是可以再进行优化的! 3、使用 redis-dump 工具。 Redis-Dump 是一个用于 Redis 数据导入 / 导出的工具,是基于 Ruby 实现的,可以方便的进行 redis 的数据备份。这个工具需要先安装,以我的 Mac 为例,安装教程如下: ![]() 目前我发现,淘宝的镜像已经出现 bad response Not Found 404 了,被告知镜像维护站点已迁往 Ruby China 镜像。 ![]() 安装完成后,就可以使用 redis-dump 工具进行数据的导入导出了! ![]() Linux 系统或者 Window 系统也都类似,安装 redis-dump 工具完成后直接使用 redis-dump 导出,redis-load 导入即可完成数据的备份与迁移。 redis-dump 工具很强大,建议大家到官网上多看看它的官方文档。 4、rdb 文件迁移 redis-dump 麻烦就麻烦在需要进行安装,如果我的 Redis 已经有备份机制,比如有 rdb 文件,那么我们直接迁移 rdb 文件就可以达到同样的目的。 首先,我们可以先关闭源 Redis 实例的 aof 功能。如果不关闭 aof,Redis 默认用 aof 文件来恢复数据。 ![]() 然后使用 save 命令把数据固化到 rdb 文件中。 ![]() save 完成后,还是通过 config get dir 命令获得保存的 RDB 数据文件位置。 接下来,我们需要杀死 redis 进程。杀掉当前 redis 的进程,否则下一步的复制 rdb 文件,rdb 处于打开的状态,复制的文件,会占用同样的句柄。 ![]() 然后复制源 redis 的 rdb 文件到目标 Redis 的 dir 数据目录,名字为你要迁移的 redis 的 rdb 文件名。 复制完成后,重启目标 Redis 实例,数据就迁移完成了。重启完成后可以验证一下数据是否成功的复制了。 最后说一下,我所有的操作都是在相同的版本下进行的。如果版本不相同,可能会出现报错的情况。还有就是 redis 必须要求用户对”config get dir”目录拥有写入权限,不然会报 saving-permission-denied 错误。Redis 的 save 条件在 /etc/redis.conf 中可以看到,也可以自己修改调整! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |